package com.lwx.chapter5;

public class Sum {
    public static int sum(int[] arr){
        return sum(arr, 0);
    }

    /**
     *计算
     * @param arr
     * @param l 左边界的索引
     * @return
     */
    private static int sum(int[] arr, int l){
        //缩减问题规模，直到一个最基本的问题
        if(l == arr.length-1){
            return arr[l];
        }
        //把原问题转化为更小的问题
        //将sum看做另一个函数，抛弃这是一个递归函数的想法
        //从宏观上理解递归的语义
        return arr[l]+sum(arr,l+1);
    }

    public static void main(String[] args) {
       int[] nums = {1,2,3,4,5,6,7,8};
       sum(nums);
    }

}
